package com.net.xpay.common.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.net.xpay.common.enums.user.AppVersion;
import com.net.xpay.common.enums.user.ClientFrom;
import com.net.xpay.common.enums.user.IndustryCategory;
import com.net.xpay.common.enums.user.UserTag;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * @author  on 28/01/2018.
 */
@Getter
@Setter
@NoArgsConstructor
public class RegisterModel {

    @ApiModelProperty(required=true, notes = "手机号", example = "18812345678")
    private String mobile;

    @ApiModelProperty(notes = "外部系统用户编码 对接外部系统")
    private String outerId;

    @ApiModelProperty(notes = "渠道用户id， 是哪个渠道下的用户")
    private Long channelMasterUserId;

    @ApiModelProperty(required=true, notes = "手机验证码", example = "888888")
    private String checkCode;

    @ApiModelProperty(required=true, notes = "密码", example = "123456")
    private String password;

    @ApiModelProperty(required=true, notes = "重复密码", example = "123456")
    private String repeatPassword;

    @ApiModelProperty(required=true, notes = "同意协议", example = "true")
    private Boolean acceptProtocol;

    @ApiModelProperty(required=true, notes = "客户端类型", example = "pc_web")
    private ClientFrom clientFrom;

    @ApiModelProperty(notes = "软件版本")
    private AppVersion appVersion;

    @ApiModelProperty(notes = "用户标签")
    private UserTag userTag;

    @ApiModelProperty(notes = "行业类别")
    private IndustryCategory industryCategory;

    @ApiModelProperty(notes = "体量描述")
    private String volumeDesc;

    @ApiModelProperty(notes = "合伙人邀请码")
    private String pma;

    @ApiModelProperty(notes = "合伙人手机号")
    private String partnerMobile;

    @ApiModelProperty(notes = "是否开放商户平台")
    private Boolean openMerchantPlatform;

    /**
     * 实名信息
     */
    @ApiModelProperty(notes = "姓名")
    private String name;

    @ApiModelProperty(notes = "备注")
    private String remark;

    /**
     * 以下为controller填入的字段
     */
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    @ApiModelProperty(notes = "ip", example = "1")
    private String ip;

    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    @ApiModelProperty(notes = "管理员注册")
    private Boolean adminRegister;

    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    @ApiModelProperty(notes = "开放注册")
    private Boolean openRegister;

    public static RegisterModel getInstance() {
        return new RegisterModel();
    }
}
